리눅스 소프트웨어 패키지 관리리눅스에서 애플리케이션, 라이브러리 설치를 제어할 수 있는 몇가지 유형의 패키지 관리 시스템(PMS)를 이용한다.
(각각의 데이터 베이스를 사용해서 관리)
- 리눅스 시스템에 어떤 소프트웨어 패키지가 설치되어 있는가?
- 각 패키지마다 어떤 파일이 설치되어 있는가?
- 설치된 소프트웨어 패키지 각각의 버전은 무엇인가?
소프트웨어 패키지는 저장소(repository) 서버에 저장되고 인터넷으로 내 리눅스 시스템에서 구동되는 PMS 유틸리티를 통해 저장소에
접근할 수 있다.
PMS 유틸리티는 의존성을 감지하고 원한는 패키지를 설치하기 전에 추가로 필요한 소프트웨어 패키지를 설처한다.
PMS는 표준 유틸리티로 통합되어 있지 않다(리눅스 배포판에 따라 다른 유틸리티(인터페이스) 사용)
- dpkg: 데비안 기반 시스템인 우분투, 리눅스 민트 등에서 사용한다
- RPM: 레드햇 기반의 배포판인 페도라, 오픈수세, 맨드리바 등에서 사용한다.
Debian System(dpkg)dpkg
apt-get
apt-cache
aptitude: apt-get, apt-cache와 dpkg 명령 모두에 대한 프론트엔드 역할을 수행
aptitude를 사용하면 소프트웨어 의존성 누락, 불안정한 시스템 환경 및 불필요한 번거로움과 같이 소프트웨어 설치 문제에서 벗어나도록
도와준다.
- aptitudeaptitude는 대화형 인터페이스를 제공한다.
aptitude
aptitude show <package_name>
aptitude search <package_name>
sudo aptitutde install <package_name>
aptitude safe-upgrade
aptitude full-upgrade
aptitude dist-upgrade
sudo aptitude purge <package_name>
aptitude로 특정 소프트웨어 패키지와 관련된 모든 파일들의 목록을 얻을 수는 없다.
목록 얻기 위해서는 dpkg 사용
dpkg -L <package_name>
dpkg --serach <absolute_file_name>
리눅스 배포판을 설치할 때 aptitude의 기본 소프트웨어 저장소 위치가 설정된다.
/etc/apt/sources.list 파일에 저장된다.
└─$ cat /etc/apt/sources.list
# See https://www.kali.org/docs/general-use/kali-linux-sources-list-repositories/
deb http://http.kali.org/kali kali-rolling main contrib non-free
# Additional line for source packages
# deb-src http://http.kali.org/kali kali-rolling main contrib non-free
deb(-src) <address> <distribution_name> <package_type_list>
deb: 컴파일된 프로그램
deb_src: 소스코드
package_type_list
- main
- restricted
- universe
- partner
RedHat System(RPM)RPM
yum: 레드햇과 페도라, CentOS 등에서 사용
urpm: 맨드리바에서 사용
zypper: 오픈수세에서 사용
yum list installed > InstalledList.txt
rpm -q > InstalledList.txt
ipper search -I >InstalledList.txt
yum
yum list <package_name>
yum list installed <package_name>
yum provides <file_name>
yum provides /etc/yum.conf
sudo yum install <package_name>
yum localinstall <package_name.rpm>
yum list updates
yum update <package_name>
yum update
yum remove <package_name>
yum erase <package_name>
yum clean all
yum deplist <package_name>
yum update --skip-broken
yum repolist
/etc/yum.repos.d에 yum 저장소를 정의하는 파일이 저장된다.
소스코드에서 설치하기소스코드를 압축하고 아카이브한 *.tar.gz or *.tgz로 패키지 소스가 제공되는 경우
위와 같이 디렉토리를 압축해서 패키지로 제공되는 경우 README or AAAREADME 파일과 같은 필요한 지침을 주로 제공한다.
일반적으로
./configure
make
make install
configure: 시스템에 필요한 라이브러리, 소스코드를 컴파일하기 위한 컴파일러 등 검사
make: 소스코드 컴파일, 링커로 최종 실행 파일 생성
make install: 사용자 계정으로 로그인 후 실행시, 사용자 공통 위치로 실행 파일 및 라이브러리 이동